Add a 'touchscreen' debug flag
authorMatthias Clasen <mclasen@redhat.com>
Thu, 10 Jul 2014 14:10:11 +0000 (10:10 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 10 Jul 2014 14:12:02 +0000 (10:12 -0400)
This has the same effect as the GTK_TEST_TOUCHSCREEN environment
variable, but can be toggled at runtime.

docs/reference/gtk/running.sgml
gtk/gtkdebug.h
gtk/gtkentry.c
gtk/gtkgesturesingle.c
gtk/gtkmain.c
gtk/gtktextview.c

index f7d89d101be4113fa68d6a6a1bb773ea3f57138b..567c72aaa73ff111df2c56b261263c5878ec5da9 100644 (file)
@@ -198,6 +198,10 @@ additional environment variables.
       <term>text</term>
       <listitem><para>Text widget internals</para></listitem>
     </varlistentry>
+    <varlistentry>
+      <term>touchscreen</term>
+      <listitem><para>Pretend the pointer is a touchscreen device</para></listitem>
+    </varlistentry>
     <varlistentry>
       <term>tree</term>
       <listitem><para>Tree widget internals</para></listitem>
index 895520eba68e4b97c3ca8d92aebacfb54ad9781b..8b1d2cb2695e85369887e71d9496a5252f527a04 100644 (file)
@@ -52,7 +52,8 @@ typedef enum {
   GTK_DEBUG_BASELINES       = 1 << 14,
   GTK_DEBUG_PIXEL_CACHE     = 1 << 15,
   GTK_DEBUG_NO_PIXEL_CACHE  = 1 << 16,
-  GTK_DEBUG_INTERACTIVE     = 1 << 17
+  GTK_DEBUG_INTERACTIVE     = 1 << 17,
+  GTK_DEBUG_TOUCHSCREEN     = 1 << 18
 } GtkDebugFlag;
 
 #ifdef G_ENABLE_DEBUG
index abaa20b827fccefef9f37be9061f06b2f6069b54..5cdb3d9761cdb62b4a18bbe6d02476fc8b5fc82c 100644 (file)
@@ -34,6 +34,7 @@
 #include "gtkbindings.h"
 #include "gtkcelleditable.h"
 #include "gtkclipboard.h"
+#include "gtkdebug.h"
 #include "gtkdnd.h"
 #include "gtkentry.h"
 #include "gtkentrybuffer.h"
@@ -4419,6 +4420,7 @@ gtk_entry_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
 
       source = gdk_event_get_source_device (event);
       is_touchscreen = test_touchscreen ||
+        (gtk_get_debug_flags () & GTK_DEBUG_TOUCHSCREEN) != 0 ||
         gdk_device_get_source (source) == GDK_SOURCE_TOUCHSCREEN;
 
       if (is_touchscreen)
@@ -4701,7 +4703,9 @@ gtk_entry_drag_gesture_update (GtkGestureDrag *gesture,
         gtk_entry_set_positions (entry, tmp_pos, -1);
 
       /* Update touch handles' position */
-      if (test_touchscreen || input_source == GDK_SOURCE_TOUCHSCREEN)
+      if (test_touchscreen ||
+          (gtk_get_debug_flags () & GTK_DEBUG_TOUCHSCREEN) != 0 ||
+          input_source == GDK_SOURCE_TOUCHSCREEN)
         {
           gtk_entry_ensure_text_handles (entry);
           gtk_entry_update_handles (entry,
@@ -4742,6 +4746,7 @@ gtk_entry_drag_gesture_end (GtkGestureDrag *gesture,
   event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), sequence);
   source = gdk_event_get_source_device (event);
   is_touchscreen = (test_touchscreen ||
+                    (gtk_get_debug_flags () & GTK_DEBUG_TOUCHSCREEN) != 0 ||
                     gdk_device_get_source (source) == GDK_SOURCE_TOUCHSCREEN);
 
   if (priv->selection_bubble &&
index d33f190292cf454f78283e33d4c57647574b70fa..5d6507e83b44d6b938c3407930b9d2ecc43fa8a8 100644 (file)
@@ -39,6 +39,7 @@
 #include "gtkgesturesingleprivate.h"
 #include "gtkprivate.h"
 #include "gtkintl.h"
+#include "gtkdebug.h"
 
 typedef struct _GtkGestureSinglePrivate GtkGestureSinglePrivate;
 
@@ -301,7 +302,8 @@ gtk_gesture_single_init (GtkGestureSingle *gesture)
 
   priv = gtk_gesture_single_get_instance_private (gesture);
 
-  if (g_getenv ("GTK_TEST_TOUCHSCREEN"))
+  if (g_getenv ("GTK_TEST_TOUCHSCREEN") ||
+      (gtk_get_debug_flags () & GTK_DEBUG_TOUCHSCREEN) != 0)
     priv->touch_only = FALSE;
   else
     priv->touch_only = TRUE;
index 7e6c4f16d68a0e2881d3eadc8883091a042abd2b..16e0fdcb827dc5038477bc43d30dfff0259d61d2 100644 (file)
@@ -177,7 +177,8 @@ static const GDebugKey gtk_debug_keys[] = {
   {"baselines", GTK_DEBUG_BASELINES},
   {"pixel-cache", GTK_DEBUG_PIXEL_CACHE},
   {"no-pixel-cache", GTK_DEBUG_NO_PIXEL_CACHE},
-  {"interactive", GTK_DEBUG_INTERACTIVE}
+  {"interactive", GTK_DEBUG_INTERACTIVE},
+  {"touchscreen", GTK_DEBUG_TOUCHSCREEN}
 };
 #endif /* G_ENABLE_DEBUG */
 
index 805cb75012149ec38b5d93de9e1411702bb04a51..75c6f9b5c5edac3e0810265425719f35bbfbc0ef 100644 (file)
@@ -31,6 +31,7 @@
 #include "gtkadjustmentprivate.h"
 #include "gtkbindings.h"
 #include "gtkdnd.h"
+#include "gtkdebug.h"
 #include "gtkintl.h"
 #include "gtkmain.h"
 #include "gtkmarshalers.h"
@@ -5091,6 +5092,7 @@ gtk_text_view_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
 
   device = gdk_event_get_source_device ((GdkEvent *) event);
   is_touchscreen = test_touchscreen ||
+                   (gtk_get_debug_flags () & GTK_DEBUG_TOUCHSCREEN) != 0 ||
                    gdk_device_get_source (device) == GDK_SOURCE_TOUCHSCREEN;
 
   if (n_press == 1)
@@ -6999,6 +7001,7 @@ gtk_text_view_drag_gesture_update (GtkGestureDrag *gesture,
   device = gdk_event_get_source_device (event);
 
   is_touchscreen = test_touchscreen ||
+                   (gtk_get_debug_flags () & GTK_DEBUG_TOUCHSCREEN) != 0 ||
                    gdk_device_get_source (device) == GDK_SOURCE_TOUCHSCREEN;
 
   if (data->granularity == SELECT_CHARACTERS)
@@ -7095,6 +7098,7 @@ gtk_text_view_drag_gesture_end (GtkGestureDrag *gesture,
   event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), sequence);
   device = gdk_event_get_source_device (event);
   is_touchscreen = test_touchscreen ||
+    (gtk_get_debug_flags () & GTK_DEBUG_TOUCHSCREEN) != 0 ||
     gdk_device_get_source (device) == GDK_SOURCE_TOUCHSCREEN;
 
   if (priv->selection_bubble &&